package com.jxstjh.conch.handler.discard;

import com.jxstjh.conch.common.domain.AnchorInfo;
import com.jxstjh.conch.common.domain.TaskInfo;
import com.jxstjh.conch.common.enums.AnchorStateEnum;
import com.jxstjh.conch.support.utils.LogUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 消息丢弃服务
 */
@Service
public class DiscardMessageService {

    @Autowired
    private LogUtil logUtil;

    /**
     * 是否丢弃当前发送消息
     *
     * @param taskInfo
     * @return
     */
    public Boolean isDiscard(TaskInfo taskInfo) {

        // TODO 有些业务场景下, 可能会临时禁止某些消息模板的发送, 但需要禁止发送的模板可能牵扯多个发送方或复杂的业务流程, 以及
        // TODO 其他原因, 需要对发送的模板消息做过滤处理即丢弃. 实现方式待设计, 可以通过配置的方式来处理, 具体实现等设计

        // 日志记录, 日志埋点
        logUtil.print(AnchorInfo.builder().businessId(taskInfo.getBusinessId()).ids(taskInfo.getReceiver()).state(AnchorStateEnum.DISCARD.getCode()).build());
        return false;
    }
}